% preamble

% misc packages
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{url}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{amsmath} 
\usepackage{amsfonts}
\usepackage{color} 
\usepackage[lofdepth,lotdepth]{subfig}
% header
\usepackage{fancyhdr}
\setlength{\headheight}{15.2pt}
\pagestyle{fancyplain}

% header definition
\fancyhf{}	% clear settings
 
% content
\lhead{\fancyplain{}{ISE - SS 12}}	%  lecture top left
\rhead{\fancyplain{}{Milestone 1}}		% exercise number top right
\cfoot{\fancyplain{}{\thepage}}			% pagenumber bottom center
\lfoot{\fancyplain{}{Borckholder, Graf, Penzinger}}		% authors bottom left

%ruler
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}

% document
\begin{document}

\title{Design : Use Cases}
\author{Chris Borckholder, Manuel Graf, Matthias Penzinger} 
\date{\today}
\maketitle

\begin{figure}[h!t]
	\centering
	\includegraphics[width=\textwidth]{UseCases.jpg}
	\caption{Use Cases Reservierungssystem}
	\label{UC}
\end{figure}

\newpage

\section*{Use Case: place reservation}

\begin{quote}
\begin{description}

\item[Ziel:]Aufnahme einer g"ultigen Reservierung entsprechend den W"unschen des Kunden
\item[Kategorie:]prim"ar
\item[Vorbedingung:]Keine
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:]G"ultige Reservierung gespeichert und dem Kunden best"atigt
	\item[Fehlschlag:]Aussagekr"aftige Fehlermeldung und falls m"oglich die Option Eingaben zu korrigieren
	\end{description}
\item[Ausl"oser:]Kunde startet Reservierungsvorgang auf der Webseite (Formular)
\item[Ablauf:]\
	\begin{enumerate}
	\item Eingabe Reservierungsdaten
		\begin{itemize}
		\item Abholort
		\item R"uckgabeort
		\item Anmietdatum
		\item R"uckgabedatum
		\end{itemize}
	\item Auswahl Fahrzeugkategorie
	\item Anzeige einer Zusammenfassung und Best"atigung
	\item Anzeige Reservierungsbest"atigung
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[1a]Auswahl der korrekten Filiale bei mehrdeutigen Ortsnamen (Pop-Up)
	\item[2a]Login, falls Kunde nicht eingeloggt
	\item[2b]Eingabe der Kundendaten, falls noch kein registrierter Kunde (s. use case register)
	\end{enumerate}
\item[Alternativen:]\
	\begin{enumerate}
	\item[4]Versand einer Best"atigungsemail
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: edit reservation}

\begin{quote}
\begin{description}

\item[Ziel:]Ver"andern der Daten einer Reservierung
\item[Kategorie:]sekund"ar
\item[Vorbedingung:]Bestehende Reservierung, Kunde eingeloggt
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:]Ver"anderungen gepr"uft und gespeichert
	\item[Fehlschlag:]Aussagekr"aftige Fehlermeldung und falls m"oglich die Option Eingaben zu korrigieren, Ausgangszustand der Reservierung wieder hergestellt
	\end{description}
\item[Ausl"oser:]Kunde ruft Formular auf
\item[Ablauf:]\
	\begin{enumerate}
	\item Eingabe der ver"anderten Reservierungsdaten
		\begin{itemize}
		\item Abholort
		\item R"uckgabeort
		\item Anmietdatum
		\item R"uckgabedatum
		\end{itemize}
	\item Auswahl Fahrzeugkategorie
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[1a]Auswahl der korrekten Filiale bei mehrdeutigen Ortsnamen (Pop-Up)
	\end{enumerate}
\item[Alternativen:]\
	\begin{enumerate}
	\item[0] Stornierung
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: view my reservations}

\begin{quote}
\begin{description}

\item[Ziel:]Anzeige aller bestehenden Reservierungen des Kunden
\item[Kategorie:]sekund"ar
\item[Vorbedingung:]Kunde eingeloggt
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:]Auflistung bestehender Reservierungen
	\item[Fehlschlag:]Hinweis auf Ursache (Weiterleitung zu Login?)
	\end{description}
\item[Ausl"oser:]Kunde ruft Liste auf
\item[Ablauf:]\
	\begin{enumerate}
	\item Auflistung der aktiven Reservierungen
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[1a]Zus"atzlich Anzeige aller Reservierungen, bzw. Mieten (auch abgelaufene
	\item[2]Reservierung bearbeiten (s. edit reservation)
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: register}

\begin{quote}
\begin{description}

\item[Ziel:] Registrierung eines Neukunden in der Webapplikation
\item[Kategorie:] sekundär
\item[Vorbedingung:] Kunde noch nicht registriert, nicht eingeloggt
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:] Kundendaten gepr"uft und gespeichert, Account angelegt
	\item[Fehlschlag:] \textbf{Keine} Kundendaten gespeichert, kein Account angelegt, Fehlermeldung an Kunde
	\end{description}
\item[Ausl"oser:] Kunde f"ullt 'Pers"onliche Daten' Formular aus
\item[Ablauf:]\
	\begin{enumerate}
	\item Kunde gibt pers"onliche Daten an (Parameter: s. DB-Schema)
	\item Anzeige einer Zusammenfassung und Bestätigung der Registrierung
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[2a]Anzeige Formular mit Fehlern, falls Eingabe(n) ung"ltig
	\end{enumerate}
\item[Alternativen:]\
	\begin{enumerate}
	\item[3]Versand Best"atigungsemail
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: edit personal informations}

\begin{quote}
\begin{description}

\item[Ziel:] "Anderung der Daten eines registrierten Kunden
\item[Kategorie:] sekundär
\item[Vorbedingung:] Kunde ist registriert und eingeloggt
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:] Ge"anderte Kundendaten gepr"uft und gespeichert
	\item[Fehlschlag:] \textbf{Keine} "Anderungen gespeichert, Fehlermeldung an Kunde
	\end{description}
\item[Ausl"oser:] Kunde ver"andert 'Pers"onliche Daten' Formular
\item[Ablauf:]\
	\begin{enumerate}
	\item Kunde gibt "Anderungen an den pers"onliche Daten an (Parameter: s. DB-Schema)
	\item Anzeige einer Zusammenfassung und Bestätigung der "Anderungen
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[2a]Anzeige Formular mit Fehlern, falls Eingabe(n) ung"ltig
	\end{enumerate}
\item[Alternativen:]\
	\begin{enumerate}
	\item[3]Versand Best"atigungsemail
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: list stations}

\begin{quote}
\begin{description}

\item[Ziel:] Anzeige aller existierenden Filialen
\item[Kategorie:] sekund"ar
\item[Vorbedingung:] keine
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:] Filialen angezeigt mit relevanten Informationen
	\item[Fehlschlag:] Fehlermeldung
	\end{description}
\item[Ausl"oser:] Kunde ruft Seite 'Filialliste' auf
\item[Ablauf:]\
	\begin{enumerate}
	\item Aufruf der Seite (link)
	\item Liste wird angezeigt
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[1a] Filtern der Liste
	\end{enumerate}
\item[Alternativen:]\
	\begin{enumerate}
	\item[3] Anzeige der Daten einer einzelnen Filiale nach Auswahl in Liste
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: view vehicle classes}

\begin{quote}
\begin{description}

\item[Ziel:] Anzeige der existierenden Fahrzeugklassen
\item[Kategorie:]sekund"ar
\item[Vorbedingung:] keine
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:] Anzeige der Klassen
	\item[Fehlschlag:] Fehlermeldung
	\end{description}
\item[Ausl"oser:] Kunde ruft Liste auf
\item[Ablauf:]\
	\begin{enumerate}
	\item Aufruf der Seite (link)
	\item Anzeige der Liste
	\end{enumerate}
\item[Erweiterung:]\
	\begin{enumerate}
	\item[1a] Filtern der Liste
	\item[1b] Sortieren der Liste
	\end{enumerate}
\item[Alternativen:]\
	\begin{enumerate}
	\item[3] Anzeige von Details einer Kategorie
	\end{enumerate}

\end{description}
\end{quote}

\newpage

\section*{Use Case: misc views}

\begin{quote}
\begin{description}

\item[Ziel:]Anzeige von zus"atzlichen Informationen
\item[Kategorie:]terti"ar
\item[Vorbedingung:] keine
\item[Nachbedingung:]\
	\begin{description}
	\item[Erfolg:]Information wird angezeigt
	\item[Fehlschlag:]Fehlermeldung
	\end{description}
\item[Ausl"oser:]Kunde ruft Information auf
\item[Alternativen:]\
	\begin{enumerate}
	\item[1] Kontaktinformationen
	\item[2] Impressum
	\item[3] Sitemap
	\end{enumerate}

\end{description}
\end{quote}

\end{document}